package com.sx.sx1.lintcode.day717;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Stack;

public class LC1525 {


    static class UndirectedGraphNode {
        int label;
        List<UndirectedGraphNode> neighbors;

        UndirectedGraphNode(int x) {
            label = x;
            neighbors = new ArrayList<UndirectedGraphNode>();
        }
    }

    static class Solution {
        /**
         * @param root: the root of the tree
         * @return: post order of the tree
         */
        public List<Integer> postorder(UndirectedGraphNode root) {
            // 法1：递归，后面给代码； 法2：栈。先按照根右左的顺序先序遍历，最后翻转一下。代码如下：
            List<Integer> ans = new ArrayList<>();
            Stack<UndirectedGraphNode> s = new Stack<>();
            s.add(root);

            while (!s.isEmpty()){
                UndirectedGraphNode node = s.pop();
                ans.add(node.label);
                for (UndirectedGraphNode next : node.neighbors) {
                    s.add(next);
                }
            }
            Collections.reverse(ans);
            return ans;
        }
    }
}


/*
LintCode-Logo
搜索题目、标签、题集
中文
avatar
您有197条未读消息，请及时查看
1525 · N叉树的后序遍历
算法
简单
通过率
85%

题目
题解11
笔记
讨论9
排名
记录
描述
给定一个 N 叉树，返回其节点值的后序遍历。

最短时间刷“透”算法面试：《66页算法宝典》.pdf

微信添加【jiuzhangfeifei】备注【66】领取


样例
样例

输入 : {1,3,2,4#2#3,5,6#4#5#6}
输出: [5,6,3,2,4,1]
说明：
这棵树如下所示（左侧的）
WPS图片-修改尺寸(2).png

标签
相关题目

1526
N叉树的前序遍历
简单
推荐课程

系统设计 System Design 2024版
数据库、API、GFS、视频流等16大系统设计详解，实战练习拿下面试/晋升“拦路虎”
已开启智能提示
发起考试
15 分 00 秒
123456789101112131415161718192021
}
控制台
历史提交

 */